package xyz.msj.hrm.excptions.handler;


import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import xyz.msj.hrm.excptions.GlobalException;
import xyz.msj.hrm.util.AjaxResult;

//全局异常错误，统一拦截
// @ControllerAdvice：它可以在其他controller执行前，后去做一些事情 ， aop思想
@ControllerAdvice
@Slf4j
@ResponseBody
public class GlobalExceptionHandler {

    //处理异常,拦截其他所有的controller的异常
    @ExceptionHandler(GlobalException.class)
    public AjaxResult globalExceptionHandler(GlobalException e){
        e.printStackTrace();
        log.error("全局异常捕捉："+e.getMessage());
        return AjaxResult.me().setSuccess(false).setMessage(e.getMessage());
    }

    //处理异常,拦截其他所有的controller的异常
    @ExceptionHandler(Exception.class)
    public AjaxResult exceptionHandler(Exception e){
        e.printStackTrace();
        log.error("全局异常捕捉："+e.getMessage());
        return AjaxResult.me().setSuccess(false).setMessage("啊喔，系统异常啦，我们正在殴打程序员...");
    }

}